#!/opt/anaconda3/bin/python
# -*- coding:utf-8 -*-
'''
@project : meiguo_mall
@author  : leftxxk
#@file   : main.py
#@time   : 2021-06-02 14:16:09
'''

'''
生产者

    @app.task
    def celery_send_sms_code(sms_code_server, mobile):
        from libs.duanxin.send import send_sms
        send_sms(sms_code_server, mobile)


消费者
    在base路径下执行
    $ cd ~/meiduo_project/meiduo_mall
    $ celery -A celery_tasks.main worker -l INFO
    



队列（中间人）

    main.py
    # 2。设置broker
    # 通过加载配置文件 设置broker
    app.config_from_object('celery_tasks.config')
    
    config.py
    # 配置信息  key=value
    # 指定redis为broker（中间人）
    broker_url = 'redis://127.0.0.0:6379/15'
 
 
Celery---将这三者实现

    # 0。为celery运行这只django环境
    import os
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiguo_mall.settings')
    
    # 1。创建celery实例
    from celery import Celery
    
    # 参数1 main 设置脚本路径  脚本路径是唯一的
    
    app = Celery(main='celery_tasks')
'''
# 0。为celery运行配置django环境
import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiguo_mall.settings')

# 1。创建celery实例
from celery import Celery

# 参数1 main 设置脚本路径  脚本路径是唯一的
# 创建celery实例
app = Celery(main='celery_tasks')

# 2。设置broker
# 通过加载配置文件 设置broker
app.config_from_object('celery_tasks.config')

# 3。celery自动检测指定包的任务
# autodiscover_tasks 参数是列表
# 列表中的元素是tasks的路径
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email'])
